Control system for reel mechanism

ABSTRACT

A reel control system is disclosed for eliminating known problems with reel mechanisms used in gaming machines. First of all, phase setting of the reel position is greatly simplified. The control system also provides a relatively accurate method for determining if a reel position has moved from a standstill position, due to low power, no power or outright tampering. Any movement of the reel can be corrected. The reel control system is also configured with multiple serial bus interfaces connected to a single serial bus that, in turn, can be connected to multiple stepper motor drivers which provides for fast response time to commands. In accordance with other aspects of the invention, the reel control system can drive multiple stepper motor drivers configured with the same physical address to reduce manufacturing costs and is further configured to simultaneously drive multiple reels, different distances, different directions, with different numbers of symbols per reel as well as drive different types of reels.

CROSS REFERENCE TO RELATED APPLICATIONS

This application claims priority to and the benefit of U.S. Patent Application No. 61/240,755, filed on Sep. 9, 2009, hereby incorporated by reference.

BACKGROUND OF THE INVENTION

1. Field of the Invention

The present invention relates to a reel control system for a gaming machine with multiple reels and more particularly to a reel control system which facilitates factory calibration of the radial position of the motor shaft to a home position on initial power up and automatically resets the home position on subsequent power-ups and maintains the standstill position of the reel mechanism while enabling unequally spaced symbols. The reel control system is also configured to drive a plurality stepper motor drivers virtually simultaneously by way of a serial bus with multiple serial interfaces. In accordance with another important aspect of the invention, the reel control system can drive multiple reels, different distances, different directions as well as different reel types while reducing the manufacturing cost of these devices.

2. Description of the Prior Art

Gaming machines are well known in the art. Such gaming machines are known to include a plurality of reel mechanisms. The reel mechanisms include a rotatable reel which carries a plastic strip imprinted with symbols. The reel mechanisms are rigidly supported in such gaming machines in a side by side relationship such that the axes of rotation of the rotatable reels are essentially horizontal and co-linear. Each rotatable reel is driven independently by a stepper motor, which, in turn, is under the control of stepper motor driver.

The stepper motor driver is a control system for controlling the operation of the stepper motor in response to external signals. In the context of a gaming machine, the external signals are normally provided by a host game application. In response to user input, such as a pull of a game lever or depressing a pushbutton to initiate the game, the host game application generates a random number. As discussed in detail in U.S. Pat. No. 4,711,451, hereby incorporated by reference, each reel is divided up into a predetermined stop positions. These stop positions are stored in memory and normally coincide with the center positions of each of the symbols on the plastic strip carried by the reel. The random numbers generated by the random number generator are then associated with the addresses of the various stop positions for the reel mechanism.

As mentioned above, each reel mechanism is independently controlled. Thus, the host game controller generates a random number for each reel mechanism. Known gaming machines are provided with three (3) to seven (7) reel mechanisms. Thus, the host game controller generates a random number for each of the reel mechanisms.

An exemplary reel mechanism is illustrated in U.S. Pat. No. 5,388,829, hereby incorporated by reference. The gaming machine includes a window for each reel mechanism on its front panel. The reel mechanisms are mounted in the gaming machine so that one or more symbols on each reel are visible from the outside of the machine through the window. Each reel assembly includes a fixed lamp rigidly carried by a frame member which also carries the stepper motor and the rotatable reel. The reel mechanisms and the lamp assemblies are located so as illuminate the symbols behind the windows.

It is important that the symbols on the various side by side reels in the gaming machine be aligned relative to the payline. Assuming a single payline, the centerlines of the symbols for each of reels should be essentially colinear. Many factors are known to affect the alignment. One factor is known as phase setting. Phase setting relates to calibration of the angular position of each reel so that the number one symbol on the reel is aligned within the payline on the gaming machine on power up. More particularly, each reel is mechanically coupled to a stepper motor shaft by way of a cross pin, as illustrated in detail in U.S. Pat. No. 4,410,178. a through hole, traverse to the shaft axis, is formed in the stepper motor shaft. A cross pin is received in the through hole. The cross pin is received by a mating slot on the hub of the reel to mechanically couple the stepper motor to the reel mechanism.

When the stepper motor driver is initially powered up, the angular position of the motor shaft is unknown in relation to the energized winding position. For example, for a 200 step motor with four (4) pairs of windings in full step excitation mode, each pair of windings will have 50 step positions in one revolution. Thus, when the motor is first energized, it is not known which of the 50 energized positions is aligned to the zero phase or home position. The home position is correlated to a home position on an optical encoder wheel. As such, the stepper motor is known to be factory adjusted by a procedure known as phase setting with no load on the motor shaft.

It is known that if a load, such as a reel, is applied to the stepper motor shaft during power-up, the zero phase or home position will be offset thus requiring re-calibration when the reel mechanism is installed in a gaming machine. In order to correct the offset in the phase setting in the field, the stepper motor housing is physically rotated with respect to the reel mechanism frame. The procedure for phase setting is described in detail in Standard Operating Procedure SOP-0205-01-N-DEV, Starpoint Electrics Ltd, Pages 1-36, January, 2004, hereby incorporated by reference. In as much as there are normally five (5) reel mechanisms per gaming machine (number of reels in machine can be 3 to 7), phase setting of each of the reel mechanisms in a gaming machine (or at time of manufacture) is cumbersome and time consuming.

In particular, two windings of the stepper motor are energized in the field so that the reel assumes a permanent static position. Once locked in the static position, the motor is adjusted on the frame, so that the home position on the encoder aligns with a home position on the optical encoder. Rotation of the motor housing causes the zero phase position of the motor and the symbol on the reel, to be aligned to the payline.

Failure to correct the offset in the zero position can result in the symbols on the reels not properly lining up with the pay lines on the gaming machines and with the symbols on the other reels in the machine. Unfortunately, since gaming machines are configured so that the reel is directly coupled to the stepper motor on power up, the zero position will be offset.

Another problem with known reel mechanisms is the ability to control the reel position during a standstill condition. State gaming laws, e.g. Nevada gaming laws, require that the standstill condition be monitored and that an indication be provided should the reel move during such a standstill condition. Normally, systems for monitoring a standstill condition normally utilize an optical sensor and an optical encoder wheel. In known systems, the optical sensor and the optical encoder are used to detect movement of the reel. Should the movement beyond an acceptable amount be detected during a standstill condition, a tilt condition is known to be indicated.

There are several other problems with current methods of monitoring and controlling the reel position during a standstill condition. First, the monitoring requires an optical sensor. Second, during temporary power interruptions and low power conditions, the reels may drift from their standstill positions. In known systems, the drift would be indicated as a tilt condition, thereby ending any games in progress, likely disenchanting players. Thirdly, if reels are tampered with, the movement must be detected.

Known gaming machines include reel control systems with other problems. For example, known reel control systems have limited functionality. Indeed, known reel control systems are relatively limited in the number of reel control mechanisms that can be controlled and suffer from manufacturing and operational problems. For example, known gaming machines are known to include reel control drivers with unique addresses for each reel control mechanism in the gaming machine. The unique addresses require additional manufacturing steps and require additional inventory thus increasing the cost of such devices. In addition, known reel control mechanisms are known to require separate serial control buses for each reel control mechanism thus decreasing the response time of the system. In addition, known reel control systems are known to be limited with respect to their operational abilities. For example, known reel control systems cannot drive different types of reels simultaneously or drive multiple reels in different directions.

Thus, there is a need for eliminating the need for manual phase setting in reel mechanisms in gaming machines and improving the method of monitoring and responding to conditions when the reel position drifts during a standstill condition and providing reel control mechanisms with improved operational abilities that are less expensive to manufacture.

SUMMARY OF THE INVENTION

The present invention relates to control system for eliminating known problems with reel mechanisms used in gaming machines. First of all, phase setting of the reel position is greatly simplified. More particularly, in accordance with one aspect of the invention, phase setting of the motor shaft in an unloaded position is obviated thus simplifying the overall calibration procedure. Manufacturing phase setting calibration is done with a loaded rotor shaft. Instead of rotating the motor housing to align the first symbol with a payline, the stepper motor is energized causing the rotor shaft to rotate to a home position. The shaft is then rotated under software control until the first symbol is aligned with a payline. The angular distance to that position is stored in persistent memory as an offset along with the home position. On subsequent power-ups, the system retrieves the stored home and offset positions from the persistent storage and rotates the rotor shaft to the stored positions and writes these positions to the stepper motor driver as the home and offset positions.

The control system also provides a relatively accurate method for determining if a reel position has moved from a standstill position, due to low power, no power or outright tampering. Any movement of the reel can be corrected. In a lock mode and any games in progress can be allowed to continue. Alternatively, in a tilt mode, any games in progress are terminated and an alarm signal is indicated. The control system takes advantage of the micro-stepping ability of the stepper motor driver to enable symbol strips with different size symbols to be implemented.

In accordance with an important aspect of the invention, the reel control system is configured with multiple serial bus interfaces connected to a single serial bus that, in turn, can be connected to multiple stepper motor drivers which provides for fast response time to commands. In accordance with other aspects of the invention, the reel control system can drive multiple stepper motor drivers configured with the same physical address to reduce manufacturing costs and is further configured to simultaneously drive multiple reels, different distances, different directions, with different numbers of symbols per reel as well as drive different types of reels.

DESCRIPTION OF THE DRAWING

These and other advantages of the present invention will be readily understood with reference to the following specification and attached drawing wherein:

FIG. 1 is a block diagram of a control system for a reel mechanism in accordance with the present invention.

FIG. 2 is a block diagram of an Intelligent Reel Controller (IRD) configured to host configured to interface to an exemplary number of reel mechanisms.

FIGS. 3A and 3B are process diagrams for phase setting of the reel mechanisms in accordance with the present invention.

FIG. 4 is a software flow diagram for detecting movement of a reel mechanism during a standstill condition.

FIG. 5 is a two dimensional representation of a symbol strip with unequal symbol lengths in accordance with one aspect of the invention.

FIG. 6 is a data flow diagram illustrating the operation of the reel control system in accordance with the present invention.

FIG. 7 is an exemplary simplified flow diagram of an exemplary application for use with the present invention.

FIG. 8 is an exemplary simplified flow diagram for an Intelligent Reel Driver (IRD) in accordance with the present invention.

DETAILED DESCRIPTION

The present invention relates to a reel control system for a gaming machine having at least one reel mechanism, for example, as described in detail in U.S. Pat. Nos. 4,410,178 and 5,388,829, hereby incorporated by reference. As will be discussed in detail below, the control system in accordance with the present invention relates to a reel control system that includes various improvements relative to known reel control systems.

For example, the reel control system is configured to eliminate known problems related to phase setting and detection of reel movement during a standstill condition. In accordance with another aspect of the invention, the reel control system may also be configured to enable reels with unequal symbol lengths to be utilized which enabled the odds of a winning combination to be easily changed. In accordance with yet another aspect of the invention, the reel control system is configured to control multiple stepper motor drivers by way of a single serial bus with multiple serial bus interface, for example, eight (8) serial interfaces, which improves the response time of the system and enabling the stepper motors to be operated at a relative fast speed, for example, full speed. In order to facilitate the manufacturing and reduce the cost of such devices, the reel control system is configured to operate with the stepper motor drivers all configured with the same physical address. Finally, the reel control system in accordance with the present invention can control multiple reels, different types of reels in different directions virtually simultaneously, as discussed below.

Reel Control System

Referring to FIG. 1, a reel control system in accordance with the present invention is generally identified with the reference numeral 20. As shown, the reel control system 20 includes a Intelligent Reel Driver (IRD) generally identified with the reference numeral 22 and a multiple of reel mechanisms, generally identified with the reference numerals 26, 28 30 and 32. The IRD 22 is used to interface a host controller 24 with one or more reel mechanisms 26, 28 30 and 32.

Each reel mechanism 26, 28, 30 and 32 includes a stepper motor and a stepper motor driver. The electrical connections between the stepper motor and the stepper motor driver are made locally at each reel mechanism 26, 28, 30 and 32. The connections from each of the stepper motor drivers are terminated, for example, by way of an exemplary connector (not shown) and routed to the IRD 22. The connectors from the stepper drivers are mated with corresponding reel interfaces, generally identified with the reference numeral 34 on the IRD 22. The reel interfaces 34 are configured as complementary connectors (not shown). The reel interfaces 34 and the complementary connectors from the stepper drivers may be implemented as 18 pin Molex type MTA connectors.

As will be discussed in more detail below, the IRD 22 provides an interface between the host or master controller 24 and a plurality of stepper motor drivers, for example eight (8) identified with the reference numerals 26, 28, 30 and 32. The IRD 22 acts as a client or slave with respect to the host controller 24. The IRD 22 acts as master with respect to the stepper motor drivers 26, 28, 30 and 32 when sending commands to the stepper motor drivers 26, 28, 30 and 32 and acts as a slave when receiving data from the stepper motor drivers 26, 28, 30 and 32.

In accordance with an important aspect of the invention, the IRD 22 communicates with each of the stepper motor drivers 26, 28, 30 and 32 by way of individual serial communication buses 34, 36, 38 and 40, for example, I²C buses. Communication between the IRD 22 and the host controller 24 may be by way of serial communication buses 42 and 44, for example, an RS-232 bus and/or a USB bus. For example, the RS-232 bus 42 may be used to connect a host controller 24 to the IRD 22 while the USB bus 44 may be used for connecting the IRD 22 to a personal computer (not shown) for initialization, testing and calibration. A common power supply 46 may be used to provide power to both the IRD 22 and the host controller 24.

Game controllers, for example, as described in detail in U.S. Pat. No. 5,988,638, hereby incorporated by reference, are well known in the art. Such game controllers may include a persistent memory device for storing all of the stop positions for each symbol on each reel in the gaming machine. These stop positions are used to identify the positions of the center of symbol position of each symbol on each reel and/or the position of one or more pay lines on each symbol. The stop positions are stored in memory at various memory addresses and may be used to identify the center of the symbol positions and/or pay line positions with reels having equally spaced symbols and unequally spaced symbols, for example, as illustrated in FIG. 5. The random numbers may also represent the number of symbols each reel is to move.

As is well known in the art, the host application or controller 24 includes a random number generator (not shown) for generating random numbers that are correlated with the addresses of the stop positions of the reels in the gaming machine. The random numbers may also represent the number of symbols each reel is to move.

The stepper motor drivers then cause the reels to rotate to the randomly selected reel positions. As will be discussed in more detail below, these randomly selected reel positions are configured as reel control commands by an Application Program Interface (API). The reel control commands are sent to the IRD 22. The IRD 22 converts the reel control commands to stepper motor driver commands which have the proper syntax and format for the stepper motor drivers. These stepper motor driver commands are sent to the stepper motor drivers which drive the respective reel mechanisms 26, 28, 30 and 32 to the positions which correlate with the positions generated by the random number generator. The stepper motor driver commands are sent the IRD 22 over one of the serial communication buses, the USB bus 42 or the RS-232 bus 44 under the control of the IRD 22.

The IRD 22 acts both as a master and a slave depending on whether the IRD 22 is sending commands to the stepper motor driver 26, 28, 30, 32 or receiving data from the stepper motor drivers 26, 28, 30, 32. In particular, when the IRD 22 sends a command to the stepper motor drivers 26, 28, 30, 32, the IRD 22 acts as a master. When the IRD 22 receives data from the stepper motor drivers 26, 28, 30 and 32, the IRD 22 acts as a slave.

Intelligent Reel Driver

As mentioned above, the intelligent reel driver (IRD) is configured with multiple serial bus interfaces that can be connected to multiple stepper motor drivers which provides for fast response time to commands. As shown in FIGS. 1 and 2, the exemplary IRD 22 is shown with eight (8) serial bus interfaces, for example, I²C bus interfaces, which allow the IRD 22 to control eight (8) reel mechanisms virtually simultaneously. Each of the eight (8) serial interfaces, in turn, is capable of driving, for example, thirty-two (32) stepper motor drivers since each stepper motor driver has a 5 bit address. The IRD 22 is thus configurable to drive 256 (8×32) stepper motor drivers. The IRD 22 is thus able to drive a relatively large number of stepper motor drivers and provide relatively fast response times. As such, the IRD 22 allows commands to be sent to the stepper motor drivers at a relatively fast speed, thereby reducing system response time. Indeed, known systems with a separate I²C bus for eight (8) separate stepper motor drivers would have an increased response time, i.e the difference in time from the time is sent to the stepper motor driver and the time the command is fully executed, on the order of a factor of eight (8).

In accordance with other aspects of the invention, the reel control system can drive multiple stepper motor drivers configured with the same physical address to reduce manufacturing costs. For an exemplary AMIS-30624 stepper motor driver, the format of the address is generally one byte. Bits 6 and 7 are fixed as a “1” while bit 0 is preset as a “0”. Bit 1 is hardwired while bits 2, 3, 4 and 5 are configured as OTP, one time programmable. In order to simplify manufacturing, the OTP bits for all of stepper motor driver. These OTP bits may be set by way of a SetOTP command on the stepper motor driver. In order to reduce manufacturing costs, the OTP address bits for all of the stepper motor drivers are set to the same physical address. In order to provide selectivity of the various stepper motor drivers, the hardwired bit, bit 1, is connected to the FPGA 56 (FIG. 2). The FPGA 56 is configured as an eight (8) channel duplex time division multiplexer. As such commands from the IRD 22 are sent to the respective stepper motor drivers virtually simultaneously by way of time division multiplexing. Similarly, data from the stepper motor drivers is returned to the IRD 22 in the same fashion.

In accordance with another aspect of the invention, the reel control system is configured to drive different types of reels, such as reels having both an equal number of symbols and reels having an unequal number of symbols, for example, as illustrated in FIG. 5. As will be discussed in more detail below, the stop positions for all of the symbols on a reel are stored. Thus for random signals based on a number of symbols to move a reel, the radial distance that the reel is moved is calculated irrespective of the radial length of the symbols I. Thus, the system can control reels with symbols having different radial lengths as well as a different number of symbols per reel.

Moreover, the reel control system allows for movement of the reels in different directions. In particular, the SetPosition command has a signed data bytes. In particular, the most significant bit (msb), i.e bit 15, is used to determine the direction of rotation of the reel depending on whether the msb is a “1” or a “0”. Based on the above, the reel control system is configured to simultaneously drive multiple reels, different distances, different directions, with different numbers of symbols per reel and can also drive different types of reels.

An exemplary hardware block diagram of the IRD 22 is illustrated in FIG. 2. As shown, the IRD 22 includes a CPU 48, for example, a 32 bit ARM CPU and a non-volatile memory 50, for example, a EEPROM. The IRD 22 also includes an LED matrix control circuit 52 which does not form a part of the present invention. The stepper motor drivers for the various reel mechanisms 26, 28, 30 and 32 (FIG. 1) are connected to the IRD 22 by way of a plurality of connectors or reel interfaces 54. Each reel interface 54 is connected to a field programmable gate array (FPGA) 56 by way of an I²C buffer, generally identified with the reference numeral 58 and an I²C interface, generally identified with the reference numeral 60. The I²C buffers 58 and the I²C interfaces 60 are used to interface the I²C buses corresponding to the stepper motor drivers of the various reel mechanisms 26, 28, 30 and 32 to a Field Programmable Gate Array (FPGA) 56. These I²C buffers 58 and the I²C interfaces 60 may be implemented by way of one or more integrated circuits, for example CMOS Integrated Circuits (ICs) 40106 or 74HC14, which are hex inverting Schmitt triggers.

The FPGA 56 is configured as a multi-channel duplex time division multiplexer. In the exemplary application shown, the FPGA 56 is configured as an eight (8) channel duplex multiplexer. The FPGA 56 is used to transmit commands and receive data to and from the stepper motor drivers 26, 28, 30 and 32 by way of the reel interfaces 54. As shown, an exemplary eight (8) reel interfaces are shown which would require a three (3) bit interface from the CPU 48 to the FPGA 56. The three (3) bit interface would thus allow the CPU 48 to address each of the eight (8) stepper motor drivers attached to the reel interfaces 54. The FPGA 56 may also be used to interface an EEPROM 62 to the CPU 48.

The EEPROM 62 may be used for storing software which stores parameters for the instructions from the host controller 24 (FIG. 1) to each of the stepper motor drivers associated with the various reel mechanisms 26, 28, 30 and 32. The EEPROM 62 may also be used for initializing each of the reel mechanisms 26, 28, 30 and 32 on power-up.

The IRD 22 also includes a non-volatile memory, for example a read only memory (ROM) 50 for storing firmware associated with the CPU 48. The ROM 50 may be external or on-chip with the CPU 48.

As mentioned above bi-directional communications between the host controller 24 (FIG. 1) and the IRD 22 is by way of a RS-232 communication link 42. The RS-232 communication link is connected to a RS-232 port 64 (FIG. 2) on the IRD 22. Bi-directional communication between an external PC (not shown) and the IRD 22 may by way of a USB bus 44 (FIG. 1). The USB bus 44 would be connected to a USB port 66 on the IRD 22.

Data Flow Diagram

An exemplary data flow diagram is illustrated in FIG. 6. As mentioned above, the host application 24 (FIG. 1) includes a random number generator (FIG. 6), generally identified with the reference numeral 49. All of the stop positions for each reel in the gaming machine are stored in a non-volatile memory 51. As is known in the art, such random number generators 49 are generally responsive to player inputs 53, such as a lever pull, etc. In response to such a player input 53, the random number generator 49 selects an address for each reel stop position stored in the non-volatile memory 51 for each reel in the gaming machine. The randomly selected stop positions are formulated into various reel control commands by an Application Program Interface (API) 55. A simplified description of the API 55 is provided for a complete understanding of the system.

The reel control commands are sent to the IRD 22 (FIG. 1) over a serial bus, for example the RS-232 bus 42 or the USB bus 44. Exemplary Spin commands generated by the API 55 are provided below.

Command—ReelControl:Spin:Forward:X=Y

Command—ReelControl:Spin:Backward:X=Y

Command—ReelControl:Spin:X=Y

Command—ReelControl:Spin:X=F,Y

Command—ReelControl:Spin:X=B,Y

These commands start one or more reels spinning. The X parameter specifies which reel or reels to start. This can be a single reel, e.g. “1”, or a comma separated list of more than one reel, e.g. “2,4”. The Y parameter specifies the number of symbol positions to spin the reel. This can be more than one complete revolution of the reel if required. For small position adjustments, a number of reel steps to spin can be specified, as opposed to complete symbol positions. For example, Y=″5″ means spin five symbols. Y=“0.5” means spin 5 steps. The API 55 keeps track of the symbol positions of each reel in the gaming machine and therefore can calculate the number of steps, half steps, etc., to move the stepper motor from the reel's current position to the newly randomly selected position.

Exemplary Responses to the ReelControl command are provided below.

Response-Reel Control: Spin command sent

Response-Reel Control: Failed to spin, reel N has timed out

Response-Reel Control: Failed to spin, reel N already spinning

Response-Reel Control: Failed to spin, command not sent

Response-Reel Control: Failed to spin, command not acknowledged

Except for the Response “Reel Control: Spin command sent”, system control is based upon positive feedback from the IRD 22 within a predetermined time period. For example, if one of the specified reels is already spinning when the API 55 issues the command to the IRD 22, the API 55 will return the response: “Reel Control: Failed to spin, reel N already spinning”. In this case, the IRD 22 is able to get the motion status of a reel in response to a GetFullStaus command to the stepper motor driver. This data is returned to the API 55. If the reel to which a command was sent indicates motion at the end of a predetermined time period, the API 55 returns the response: “Reel Control: Failed to spin, reel N already spinning.”

The “Spin command sent” response indicates that the command has been sent, but not necessarily that the reels have started spinning. After this response one or more event messages should be received. For example, a Response “Reel Control: Reel N started”, is generated confirming that each reel has started spinning, when confirmation is received from the IRD 22.

Commands from the API 55 are transmitted to the IRD 22 by way of one of the serial communication buses 42, 44. These commands are translated to the proper format and syntax for the stepper motor drivers by the IRD 22. The IRD 22 writes these commands stepper motor drivers which controls the stepper motors according to the received command. In particular, the ReelControl command from the API 55 is translated, i.e formatted into a command recognizable by the stepper motor driver. For example, the ReelControl:Spin:Forward:X=Y command from the API 55 can be translated by the CPU 48 (FIG. 2) to a “SetPosition” stepper motor driver command for an AMIS-30625 stepper motor driver.

The SetPosition command is provided to drive the stepper motor to a given absolute position. The format and syntax of the SetPosition command is provided below. The entire command set for the stepper motor drivers is set forth in Model No. AMIS-30625, I²C micro-stepping motor driver, as manufactured by ON Semiconductor, described in detail in Publication Order No. AMIS 30624D, Rev. 4, Copyright 2008, published by ON Semiconductor, hereby incorporated by reference.

SetPosition Command corresponds to the following I2C command frame: SetPosition Command Frame Byte Content Structure Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 0 Address 1 1 OTP OTP OTP OTP HW 0 3 2 1 0 1 Command 1 0 0 0 1 0 1 1 2 Data 1 1 1 1 1 1 1 1 1 3 Data 1 1 1 1 1 1 1 1 2 4 Data Pos[15:8] 3 5 Data Pos[7:0] 4

A method for translating a ReelControl command from the API 55 by the IRD 22 is illustrated below. Other commands can be translated in a similar manner. The IRD 22 may includes a look up table in the EEPROM 62, which associates a ReelControl command from the API 55 with a SetPosition command for the stepper motor driver. Given the syntax and format of the SetPosition command as provided above, the CPU 48 creates the SetPosition command by parsing the data from the ReelControl command from the API 55. The data is provided in two (2) bytes. Bits [15:8] of the data are provided by byte 4 and bits [7:0] are provided by byte 5.

The CPU 48 uses the data to create the SetPosition command. In particular, as set forth above, the SetPosition command is a five (5) byte command. Byte 1 relates to the address of the stepper motor drive. This address corresponds to the reel control mechanism 26, 28, 30 and 32. The next byte is the command byte. This byte corresponds to the number of the “SetPosition” command. In this case, this byte is 1001011. The next two bytes are for position data. These two (2) bytes or sixteen (16) bits of data allow 1 of 65,536 positions to be specified.

The current position of the stepper motor is stored in memory on board the stepper motor driver. The position may also be provided by an encoder wheel attached to the gaming reel. The position of the stepper motor for each gaming reel can be read from the stepper motor driver by the IRD 22 by way of a “GetFullStatus2” command. This command is configured with eight (8) bytes. Two bytes, bytes 2 and 3, together provide the 16 bit actual position of the stepper motor. This position may be used to enable the CPU 48 to calculate the number of steps to rotate the stepper motor in order to get to the new symbol that corresponds to the position determined by the random number generator.

A simplified exemplary flow diagram of the API 55 is illustrated in FIG. 7. As shown, the system waits in step 57 for a player input. Upon receipt of a player input, the host application 24 (FIG. 6) generates a random number by way of a random number generator. The API 55 reads the random number in order to determine the number of symbols to move each of the reels based upon the output of the random number generator. These randomly selected numbers are stored in step 59. The API 55 uses those numbers to construct a command, such as the ReelControl command discussed above in step 61. In step 63, the command is transmitted to the IRD 22 (FIG. 1) over a serial communication bus, such as the RS-232 bus 42 or the USB bus 44.

A position control command is generated for each reel. After each command is sent to the IRD 22 in step 65, the API 55 checks if commands have sent for all of the reels in the gaming machine. If not, the system returns to step 61 and repeats steps 61, 63 and 65 until commands for all of the gaming reels have been sent to the IRD 22. After all of the commands have been sent to the IRD 22, the system returns to step 57 to await additional player input.

A simplified exemplary flow diagram for the IRD 22 is illustrated in FIG. 8. Initially, the IRD 22 awaits a command from the API 55 in step 67. Upon receipt of the command, the IRD 22 translates the command into a format and syntax, for example, as described above. As mentioned above, the exemplary ReelControl command is provided in terms of the number of symbol positions that each reel is to move. In an exemplary embodiment, the stop positions for all symbols on each reel are stored in the EEPROM 62 (FIG. 2). As discussed below, the current position of each reel is returned by the stepper motor driver to the IRD 22. The CPU uses this information to calculate the target position of the reel that corresponds to the number of symbols that the reel is to be moved. The IRD 22 uses this number to construct a SetPosition command, for example, as discussed above in step 69. The command is then sent to the stepper motor driver in step 71. Subsequently, the IRD 22 reads various data from the stepper motor driver including the actual position of the stepper motor after the command has been executed in step 73. In step 75, the data from the stepper motor driver is stored and the system returns to step 67 to await another command from the API 55. Steps 69-71 are repeated until commands for all of the reels have been received and processed.

Stepper Motor Driver

At the heart of the control system is the stepper motor driver. The stepper motor driver is used to drive a bipolar stepper motor in micro-stepping mode. The stepper motor driver is an integrated circuit (IC), for example an AMIS 30624 IC, which acts as a either slave or a master to the CPU 56 on the IRD 22 depending on whether a command is being sent by the CPU 56 or data is being received from the stepper motor driver. As mentioned above, each pair of stepper motor drivers is interfaced; i.e connected, to the IRD 22 by way of individual I²C buses 34, 36, 38 and 40. Each stepper motor driver is connected to a stepper motor and an electrical connector (not shown). As mentioned above, these electrical connectors are connected to the reel interfaces 54, located on the IRD 22.

The stepper motor driver provides many important functions with respect to the control system in accordance with the present invention. First, the stepper motor driver provides closed loop control of the reel positions. In particular, The IC has built in motor position reference. When the motor is rotated, the IC automatically updates the physical position. More specifically, the stepper motor driver monitors the back EMF in the stator coils of the stepper motor to determine the actual rotor position. Whenever a SW input on the stepper motor driver is triggered, the rotor position of the stepper motor is saved in on-board memory on the stepper motor driver. The host controller 24 can thus read back the physical position of the stepper motor from the stepper motor memory. As such, the host controller 24 does not need an external optic device and encoder to monitor the symbol positions and keep a log of reel positions.

A brief description of the operation of the stepper motor driver, as provided below, will enable the present invention to be better understood. Initialization of the reels is accomplished with a single optical sensor (not shown) on each reel mechanism 26, 28, 30 and 32, located at a “home” position. The “home” position is defined as that position, where the first symbol on a reel is aligned to a pay-line, the optic sensor output is at a defined state, and the motor step position is known. The “home” position may be adjusted through 360 degrees of movement by means of mechanical adjustment of motor, lamp array and optic device, on the frame. On power up/reset condition, the motor is rotated, and the optic device monitored. When the optic device is triggered by the driven load, the output is fed into the SW input of the stepper motor driver. The motor step position is then saved to memory on-board the stepper motor driver as an absolute reference point.

Among other things, the stepper motor driver can be used to set various control parameters. For example, the stepper motor driver enables master controller 24 (FIG. 1) to set the micro-step resolution, run current and hold current of the stepper motor. With the stepper motor driver as described above, there are two methods for driving a reel to a new symbol position. In the first method, when a new symbol position is required, the host controller 24 (FIG. 1) reads back the reel position from the stepper motor driver memory and calculates the difference in steps and/or micro-steps from the current reel position to the target symbol position. The master controller 24 by way of the IRD 22, then commands the stepper motor driver to the target symbol position. The host controller can then check the physical position of the reel by reading the memory on-board the stepper motor driver and correct if required. This is similar to incremental positioning; the key difference being the host can read the current reel position from the load and not rely on a previous incremental position, thereby avoiding positional errors. In a second method, when a new symbol position is required, the host controller 24 drives the stepper motor in the required direction and monitors the reel position from the stepper motor on board memory. The stepper motor is then stopped when the target reel position is achieved.

Phase Setting

As mentioned above, phase setting relates to the position of the stepper motor shaft on power up. Since the reel is directly connected to the stepper motor on power up, the zero position of the rotor shaft is normally offset from a true zero position . . . . More specifically, as discussed above, the zero position of a stepper motor relates to the position of the rotor on power up. This zero position is used for positioning the rotor to other positions. When a load such as a reel is placed on the rotor at power-up, the factory zero position may not correspond to the centerline of a symbol. As such, heretofore, the stepper motor housing was rotated to cause the centerline of the symbol to be aligned with the payline on power up.

In accordance with the present invention, calibration of the rotor shaft in an unloaded position is unnecessary. In order to better understand the invention, previously known technique for calibrating the rotor shaft position are briefly described below. More particularly, the calibration of the rotor position was previously done in full step mode. Thus for a four (4) winding stepper motor in full step mode, 50 positions are known per revolution for each winding. Thus, previously factory calibration of the rotor position was used to locate a home position as close as possible to a position in which the first symbol was aligned with the payline. In order to fine tune the calibration and align the first symbol with a payline, the motor housing was rotated until the first symbol was aligned with the payline. The method in accordance with the present invention greatly simplifies phase calibration of the rotor shaft and eliminates the need to calibrate the shaft position in an unloaded condition.

Rather than physically rotating the stepper motor housing as is known in the prior art, the control circuit 20 in accordance with the present invention allows the “home” position for each reel to be adjusted under software control on initial power up in micro-step mode. In particular, each reel includes an optical encoder. Each optical encoder is formed as a wheel rigidly secured to each reel. Each optical encoder includes a number of peripheral slots which are positioned to correspond with various symbol positions on the reel.

The “home” position is defined as the reel position in which encoder corresponding to the first symbol is aligned with the optical sensor, rigidly secured to the reel mechanism 26, 28, 30 and 32 Ideally, the home position is aligned with a payline on the glass of a gaming machine. If not, the reel has to be rotated so that the first symbol is aligned with the payline defining an offset position.

The home and offset positions are normally stored in a volatile memory on-board the stepper motor driver IC. On power loss, this data is lost and the system has to be re-calibrated and the home and offset positions have to be re-stored on the IC. In accordance with one aspect of the invention, the system automatically restores the home and offset in the IC and re-positions the rotor to the correct position.

The process steps for factory calibration of the rotor position is illustrated in FIG. 3A. Calibration is accomplished electronically by way of an external PC connected to the USB port 36 on the IRD 22, as discussed above. During a calibration mode, the external PC is connected to the IRD 22 by way of a USB bus 44 (FIG. 1). During the calibration mode, the stepper motor is operated in micro-step mode, enabling the first symbol position to be precisely aligned with the payline. With such a configuration, the external PC functions as the master controller 24. As such, the external PC can take advantage of the native commands of the stepper motor driver for various purposes. For example, the external PC can cause the stepper motor driver to micro-step the reel to a position in which aligns the first symbol, for example, the centerline of the first symbol, with a payline on power-up. More particularly, the stepper motor driver includes a “GotoSecurePosition” command which enables the stepper motor to be micro-stepped. By way of the IRD 22, the external PC can be used to micro-step the reel to a position in which the first symbol is aligned with a payline on the gaming machine. Once the first symbol is aligned with the payline, the offset from the aligned position to the home position can then be added to the home position and stored as the new home position. The stepper motor driver includes a “ResetPosition” command for that purpose.

As illustrated in FIGS. 3A and 3B, phase setting of the reels associated with the reel mechanisms 26, 28, 30 and 32 can be accomplished either at the factory or in the field. FIG. 3A illustrates the steps involved in phase setting at the factory. FIG. 3B illustrates the steps involved in phase setting in the field.

Referring first to FIG. 3A, phase setting is initiated at the factory by applying power to the stepper motor. This may be accomplished by applying power to the battery supply pin VBB on the stepper motor driver, as indicated in step 68. On power-up the reel will rotate to a home position under the control of the stepper motor driver, as indicated by the step 70. After the reel rotates to its initial home position, the position of the first symbol with respect to the payline is checked in step 72. If the first symbol is not aligned with the payline on the gaming machine. The reel is micro-stepped forward or backward until the first symbol on the reel is aligned with the payline, as discussed above, by way of an external PC, as indicated in step 74. Once the first symbol is aligned with the payline, the offset between the initial home position and the aligned position is calculated by taking the difference between the initial home position and the aligned positions stored on the stepper motor driver. This difference or offset is stored, as indicated above in step 76. In step 78, the initial home position and the offset position are stored on board the IRD 22 concluding the manufacturing calibration, as indicated in step 80. Thus, on subsequent power-ups, the reel will rotate to a position in which the first symbol position is aligned with the payline.

FIG. 3B illustrates the process steps involved after a power loss in the field. On power loss, the home and offset positions are lost in the stepper motor driver IC. In accordance with an important aspect of the invention, the home and offset positions are automatically restored to the stepper motor driver IC on subsequent power-ups Initially, power is applied to the stepper motor as described above in step 82. On subsequent power-ups, the system automatically retrieves the home and offset positions from the IRD 22. Once those positions are retrieved, the reel is automatically rotated to its home position, as indicated in step 84. Next the reel is automatically rotated to the offset position, as indicated in step 86. In step 88, the home position and the offset position are stored in the stepper motor driver IC. That position is then set as a the reset position in step 90, by way of a “ResetPosition Command”, available on the stepper motor driver.

Standstill Detection and Control

The control system 20 can also be used to manage the monitoring of a standstill condition and the response to a condition where the reel drifts from a stop position either due to temporary power loss or a low power condition. In particular, the stepper motor driver has a SW pin. Anytime the SW pin is triggered, the actual position of the stepper motor rotor is stored in memory aboard the stepper motor driver. The master controller 24 can thus repeatedly request the actual position of the rotor by way of a “GetFullStatus2” command. Should the master controller 24 determine that the reel has drifted with respect to the standstill position, the master controller 24 can drive the rotor back to its standstill position by way of “SetPosition” command.

An exemplary flow chart is illustrated in FIG. 4. In accordance with one aspect of the invention, the system response to rotor movement from a standstill condition is user programmable. More particularly, the response can be set as a “tilt” condition and terminating a game in progress is terminated or simply returning the reel to its correct position and allowing the game to continue, as indicated in step 94. In response to random signals generated by the master game controller, the reel motor is spun and driven to a target position as determined by the master game controller 24 (FIG. 1) and stopped, as indicated by the logic blocks 96 and 98. Once the reel reaches its target position, the motor current is reduced in step 100, defining a standstill mode. In step 102, the reel position is read from the memory on board the stepper motor driver by the master controller 24. This position is stored as the standstill position in step 104. In step 106, the IRD 22 can compare the current position with stored standstill position. If the current position does not correspond with the stored standstill position, the IRD 22 will indicate a “tamper” condition, as indicated in step 108. In accordance with another aspect of the invention, the current reel position is determined in two (2) ways. First, as discussed above, the current reel position is determined by reading the reel position from the memory of the stepper motor driver. Secondly, the current reel position is determined by way of the encoder wheel, as discussed above. As such, if the current position determined from the memory of the stepper motor driver corresponds to stored standstill position, the system next determines the current reel position by reading the reel position, as indicated by the optical encoder, as discussed above, in step 108. In step 110, the IRD 22 determines if the reel position, as indicated in step 108, corresponds to the last stop position generated by the master controller 24 (FIG. 1). If not, the system proceeds to step 108 and indicates a tamper condition. If the IRD 22 determines that the current reel position corresponds to the last stop position generated by the master controller 24, the system determines that the current reel position is correct and to step 102 to monitor the current reel position. The system may continuously monitor the current reel position until the game is over, as indicated by the host controller 24, in which case, the standstill mode is terminated, as indicated in step 112. Once the standstill mode is terminated, the system loops back to step 96 and awaits a motor spin.

If a tamper condition is detected, as indicated in step 108, the IRD 22 can be placed in a lock mode or a tilt mode. As mentioned above, the IRD 22 can be configured initially in either mode. Thus, in step 114, the IRD 22 checks a configuration register to determine whether it was initially configured in a lock mode or a tilt mode.

In a lock mode, the IRD 22 simply drives the reel back to the correct position. The system maintains that position by repeatedly checking the reel position on the memory of the stepper motor driver and driving the reel back to the correct position when the reel moves by a predetermined amount. In the lock mode, the game in progress may continue once the reel is returned to its correct position.

In a tamper mode, the IRD 22 reports a tilt condition back to the host controller 24. The IRD 22 may also provide an alarm signal. In the tamper mode, any game in progress may be terminated.

Variation in Symbol Type

‘Symbol types’ are variations in the number, and size of symbols that are located on the periphery of the reel basket. A reel basket is defined as a pair of spaced apart circular disks or rings that are connected together with a number of rungs that are juxtaposed around the periphery of the reels in a position generally parallel to the axis of rotation of the reels.

Currently, reel mechanism designs require various components to provide a solution. These components are designed for specific symbol types. Most symbol types are directly related to the stepper motor used to drive the reel. For example, a 200 step motor with reels configured with 25 symbols will utilize 8 steps per symbol, all equally displaced around the reel periphery.

Some known reel baskets include spacers at pre-defined locations to allow correct symbol illumination. Other known reel baskets include pre-defined optical encoders for specific symbol types. The host software is also pre-defined for specific number of symbols.

Multiple symbol types are illustrated in FIG. 5 and may be accommodated within the design. This allows different symbol sizes to be used on a common reel mechanism. It also allows the host to change symbol type easily, if machines are rebuilt. The reel basket design has no spacers that separate the spaced apart rings or spacers. The symbol location may be in any position around the periphery of the reel basket. Such a configuration allows unrestricted backlight illumination.

The reel basket must have an encoder located in a known position, relative to the symbol location. An optic flag is a component that is used to trigger/interrupt an optic device. This encoder may be fixed in that location for any symbol type. Maximum symbol size is determined by the maximum viewable area on the game machine cabinet. For example, a viewing area of 45 degrees, will allow 8 symbols of 45 degrees height to be used. The minimum symbol size is determined by the backlight components. For example an LED component may be mounted so that it provides 5 degrees of illumination spread. This limitation is due to the physical size of the components. This configuration allows up to 72 symbols to be used.

In accordance with one aspect of the invention, any number of symbols may be used, between the minimum and maximum values, and that all symbols may be stopped centrally about the pay line angle. This is achieved by utilizing the micro step feature of the stepper motor driver, as discussed above, and the ability to boost the holding torque, on micro step positions.

FIG. 5 is a two dimensional representation of a symbol strip with unequal symbol sizes, generally identified with the reference numeral 118. For illustration, each symbol on the symbol strip 118 has a different length. Assuming a 200 step stepper motor, each symbol on the symbol strip 118 can be correlated to a number of steps. The total number of steps for all of the symbols preferably adds up to 200.

Obviously, many modifications and variations of the present invention are possible in light of the above teachings. Thus, it is to be understood that, within the scope of the appended claims, the invention may be practiced otherwise than as specifically described above.

What is claimed and desired to be secured by a Letters Patent of the United States is: 

1. A reel control system for communicating with a reel mechanism having a reel for carrying symbols and a stepper motor driver, the reel control system comprising: an intelligent reel driver configured to communicate with a host application and a stepper motor driver, said intelligent reel driver configured to enable the home position of the reel to be aligned with a pay line by way of an external PC.
 2. The reel control system as recited in claim 1, wherein said home position corresponds to a predetermined symbol on said reel.
 3. The reel control system as recited in claim 1, wherein said intelligent reel controller includes at least one serial bus for communicating with said host application.
 4. The reel control system as recited in claim 1, wherein said intelligent reel controller includes one serial bus for communicating with a plurality of reel mechanisms.
 5. The reel control system as recited in claim 1 wherein said reel includes symbols of different lengths.
 6. A reel control system for a reel mechanism having at least one stepper motor driver and at least one reel for carrying symbols, the reel control system comprising: an intelligent reel driver configured to monitor the reel position of said at least one reel and automatically corrects the position of said reel when improper movement is detected.
 7. The reel control system as recited in claim 6, wherein said intelligent reel driver is configured with two modes of operation.
 8. The reel control system as recited in claim 7, wherein said intelligent reel driver automatically corrects the position of said reel in a lock mode of operation.
 9. The reel control system as recited in claim 7, wherein said intelligent reel driver includes a tilt mode of operation in which a tilt alarm when improper movement is detected.
 10. A reel driver for controlling a plurality reels driven by a plurality of stepper motor drivers in a gaming machine, the reel driver comprising: a CPU; a memory; an input serial bus coupled to said CPU for receiving commands from a host application. an output serial bus coupled to said CPU for transmitting commands to said plurality of stepper motor drivers; and a plurality of serial bus interfaces coupled to said second serial bus for connection to a plurality of stepper motor drivers.
 11. The reel driver as recited in claim 10, wherein said plurality of stepper motor drivers is eight.
 12. The reel driver as recited in claim 10, wherein said reel driver is configured to translate commands from said host application to commands having a proper format and syntax for said stepper motor drivers.
 13. The reel driver as recited in claim 10, further including a multi-channel multiplexer for coupling said plurality of serial bus interfaces to said output serial bus.
 14. The reel driver as recited in claim 13, wherein all of said stepper motor drivers are configured with the same physical address and are connected to said multiplexer.
 15. The reel driver as recited in claim 10, wherein said reel driver is configured to drive reels with different symbol lengths.
 15. The reel driver as recited in claim 10, wherein said reel driver is configured to drive reels in different directions.
 16. The reel driver as recited in claim 10, wherein said reel driver is configured to drive reels of different reel types. 